package com.fy.proj5_permission_transaction_cache.config;

import com.github.pagehelper.PageInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * MyBatis配置类
 */
@Configuration
public class MyBatisConfig {

    /**
     * 配置PageHelper分页插件
     * @return PageInterceptor实例
     */
    @Bean
    public PageInterceptor pageInterceptor() {
        PageInterceptor pageInterceptor = new PageInterceptor();
        Properties properties = new Properties();
        
        // 设置数据库方言
        properties.setProperty("helperDialect", "mysql");
        
        // 设置为true时，允许在运行时根据多数据源自动识别数据库类型
        properties.setProperty("autoRuntimeDialect", "true");
        
        // 设置为true时，如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果
        properties.setProperty("pageSizeZero", "true");
        
        // 设置为true时，使用RowBounds分页会进行count查询
        properties.setProperty("rowBoundsWithCount", "true");
        
        // 设置为true时，如果pageNum < 1会查询第一页，如果pageNum > pages会查询最后一页
        properties.setProperty("reasonable", "true");
        
        // 将属性设置到分页插件
        pageInterceptor.setProperties(properties);
        
        return pageInterceptor;
    }
}